home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / isdn / capilli.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  4KB  |  114 lines

  1. /* $Id: capilli.h,v 1.1.2.2 2004/01/16 21:09:27 keil Exp $
  2.  * 
  3.  * Kernel CAPI 2.0 Driver Interface for Linux
  4.  * 
  5.  * Copyright 1999 by Carsten Paeth <calle@calle.de>
  6.  * 
  7.  * This software may be used and distributed according to the terms
  8.  * of the GNU General Public License, incorporated herein by reference.
  9.  *
  10.  */
  11.  
  12. #ifndef __CAPILLI_H__
  13. #define __CAPILLI_H__
  14.  
  15. #include <linux/kernel.h>
  16. #include <linux/list.h>
  17. #include <linux/capi.h>
  18. #include <linux/kernelcapi.h>
  19.  
  20. typedef struct capiloaddatapart {
  21.     int user;        /* data in userspace ? */
  22.     int len;
  23.     unsigned char *data;
  24. } capiloaddatapart;
  25.  
  26. typedef struct capiloaddata {
  27.     capiloaddatapart firmware;
  28.     capiloaddatapart configuration;
  29. } capiloaddata;
  30.  
  31. typedef struct capicardparams {
  32.     unsigned int port;
  33.     unsigned irq;
  34.     int cardtype;
  35.     int cardnr;
  36.     unsigned int membase;
  37. } capicardparams;
  38.  
  39. struct capi_ctr {
  40.     /* filled in before calling attach_capi_ctr */
  41.     struct module *owner;
  42.     void *driverdata;            /* driver specific */
  43.     char name[32];                /* name of controller */
  44.     char *driver_name;            /* name of driver */
  45.     int (*load_firmware)(struct capi_ctr *, capiloaddata *);
  46.     void (*reset_ctr)(struct capi_ctr *);
  47.     void (*register_appl)(struct capi_ctr *, u16 appl,
  48.                   capi_register_params *);
  49.     void (*release_appl)(struct capi_ctr *, u16 appl);
  50.     u16  (*send_message)(struct capi_ctr *, struct sk_buff *skb);
  51.     
  52.     char *(*procinfo)(struct capi_ctr *);
  53.     int (*ctr_read_proc)(char *page, char **start, off_t off,
  54.                  int count, int *eof, struct capi_ctr *card);
  55.  
  56.     /* filled in before calling ready callback */
  57.     u8 manu[CAPI_MANUFACTURER_LEN];        /* CAPI_GET_MANUFACTURER */
  58.     capi_version version;            /* CAPI_GET_VERSION */
  59.     capi_profile profile;            /* CAPI_GET_PROFILE */
  60.     u8 serial[CAPI_SERIAL_LEN];        /* CAPI_GET_SERIAL */
  61.  
  62.     /* management information for kcapi */
  63.  
  64.     unsigned long nrecvctlpkt;
  65.     unsigned long nrecvdatapkt;
  66.     unsigned long nsentctlpkt;
  67.     unsigned long nsentdatapkt;
  68.  
  69.     int cnr;                /* controller number */
  70.     volatile unsigned short cardstate;    /* controller state */
  71.     volatile int blocked;            /* output blocked */
  72.     int traceflag;                /* capi trace */
  73.  
  74.     struct proc_dir_entry *procent;
  75.         char procfn[128];
  76. };
  77.  
  78. int attach_capi_ctr(struct capi_ctr *);
  79. int detach_capi_ctr(struct capi_ctr *);
  80.  
  81. void capi_ctr_ready(struct capi_ctr * card);
  82. void capi_ctr_reseted(struct capi_ctr * card);
  83. void capi_ctr_suspend_output(struct capi_ctr * card);
  84. void capi_ctr_resume_output(struct capi_ctr * card);
  85. void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb);
  86.  
  87. // ---------------------------------------------------------------------------
  88. // needed for AVM capi drivers
  89.  
  90. struct capi_driver {
  91.     char name[32];                /* driver name */
  92.     char revision[32];
  93.  
  94.     int (*add_card)(struct capi_driver *driver, capicardparams *data);
  95.  
  96.     /* management information for kcapi */
  97.     struct list_head list; 
  98. };
  99.  
  100. void register_capi_driver(struct capi_driver *driver);
  101. void unregister_capi_driver(struct capi_driver *driver);
  102.  
  103. // ---------------------------------------------------------------------------
  104. // library functions for use by hardware controller drivers
  105.  
  106. void capilib_new_ncci(struct list_head *head, u16 applid, u32 ncci, u32 winsize);
  107. void capilib_free_ncci(struct list_head *head, u16 applid, u32 ncci);
  108. void capilib_release_appl(struct list_head *head, u16 applid);
  109. void capilib_release(struct list_head *head);
  110. void capilib_data_b3_conf(struct list_head *head, u16 applid, u32 ncci, u16 msgid);
  111. u16  capilib_data_b3_req(struct list_head *head, u16 applid, u32 ncci, u16 msgid);
  112.  
  113. #endif                /* __CAPILLI_H__ */
  114.